﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Marketing.Data.Access;
using Chilis.Marketing.Business.Entity;
using System.Data;

namespace Chilis.Marketing.Business.Logic
{
    public class BLMaterial
    {
        #region ATRIBUTOS

        private DAMaterial materialDA;

        #endregion

        #region CONSTRUCTOR

        public BLMaterial()
        {
            this.materialDA = new DAMaterial();
        }

        #endregion

        #region PROPIEDADES
        #endregion

        #region METODOS



        /// <summary>
        /// Método              : insertarMaterial
        /// Descripción         : Inserta Material en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="materialBE">Entidad que representa el Material</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool insertarMaterial(BEMaterial materialBE)
        {
            bool respuesta = false;
            try
            {
                int? IdMaterial = materialDA.insertarMaterial(materialBE, true);
                if (IdMaterial.HasValue && IdMaterial.Value > 0)
                {
                    respuesta = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : modificarMaterial
        /// Descripción         : Modifica Material en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="materialBE">Entidad que representa el Material</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool modificarMaterial(BEMaterial materialBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = materialDA.modificarMaterial(materialBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : eliminarMaterial
        /// Descripción         : Elimina Material en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="materialBE">Entidad que representa el Material</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool eliminarMaterial(BEMaterial materialBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = materialDA.eliminarMaterial(materialBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }


        /// <summary>
        /// Método              : obtenerMaterialPorId
        /// Descripción         : Obtiene la Entidad Material
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="idMaterial">Id Material</param>
        /// <returns>Retorna el Objeto que representa la Entidad Material</returns>
        public BEMaterial obtenerMaterialPorId(int idMaterial)
        {
            return materialDA.obtenerMaterialPorId(idMaterial);
        }


        /// <summary>
        /// Función             : buscarMateriales
        /// Descripción         : Busca los Materiales de acuerdo a los filtros configurados
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa el Material</param>
        /// <returns>Listado de Cargos de acuerdo al filtro especificado</returns>
        public DataTable buscarMateriales(BEMaterial filtro)
        {
            return materialDA.buscarMateriales(filtro);
        }

        #endregion
    }
}
